The construction of a view in a software application on a data processing system by a user often involves many discrete steps. Complex views constructed by expert users can often result in a state which could take hundreds of gestures to recreate. The gestures represent various interaction including additions, deletions, and modifications required to produce the end result view.
In a business intelligence application, users can create and collaborate on a view which contains artifacts within the system, such as reports, charts and queries, as well as artifacts which are external to the system, such as web pages and really simple syndication (RSS) feeds. Different users can contribute to and modify content of the view. The users can also add metadata, such as report annotations or comments, which enable the users to further explain the content or communicate with other users
The concept of an undo stack exists in software applications, so that the current user can remove, or undo, a few of the previous steps processed should the steps prove to be undesirable. Some applications will even save this undo stack after the user's session has ended enabling the user to return to the user's view to roll the view back through a sequence of a few steps. The intermediary states leading to the end result are often lost when the final view of an object is saved. Additionally, in a collaborative software application, multiple users can contribute to the same view, adding and modifying elements, metadata and other artifacts. These contributions can happen in any sequence and be spread across a number of users.